Copyright(C) 1994 Terumasa KODAKA , Takeshi KONO
■NESA-FO BIOS
INT 1Fh - Function C0h
Category: NESA-FO BIOS
Name: Get target slot number (1)
Target: PC-H98
Input: AH = C0h
AL = Product code (00-FFh)
Output: AX = Slot number table
bit 15: Logical slot number 15
bit 14: Logical slot number 14
...
bit 0: Logical slot number 0
* The bit corresponding to the slot number will be set to 1.
Description: Returns the slot number(s) where the expansion board with the specified product code is installed.
If multiple identical expansion boards are installed, multiple bits will be set to 1.
Related
Table: Correspondence between Physical Slot Number and Slot Name
---------------------+------------------------------
Physical Slot Number | Slot Name
---------------------+------------------------------
00h | Reserved
01h | Expansion Slot #1
02h | Expansion Slot #2
03h | Expansion Slot #3
04h | Expansion Slot #4
05h | Reserved
06h | HDC Dedicated Slot
07h | CRTC Dedicated Slot
08-0Eh | Reserved
0Fh | I/O Expansion Unit (Undocumented)
---------------------+------------------------------
Table: Example of Correspondence between Product Code and Product Name (Undocumented)
-------------+--------------------------------+----------
Product Code | Product Name | Function ID (4)
-------------+--------------------------------+----------
02h | PC-H98/70-E02 (ESDI 100MB HDD) | 06h
03h | PC-H98S/8-E02 (SCSI 100MB HDD) | 16h
04h | PC-H98-B02 (2MB Memory Board) | 06h
-------------+--------------------------------+----------
INT 1Fh - Function C1h
Category: NESA-FO BIOS
Name: Get Target Slot Number (2)
Target: PC-H98
Input: AH=C1h
AL = Segment address of the expansion ROM (upper 8 bits)
Output: AH = Undefined
■ When the corresponding expansion board is found:
AL = Logical slot number (00-0Fh)
■ When the corresponding expansion board is not found:
AL = FFh
Explanation: Returns the slot number where the expansion board with the expansion ROM located at the specified address
is installed. Hooked by EMM386.EXE.
Related
INT 1Fh - Function C2h
Category: NESA-FO BIOS
Name: Get Function ID
Target: PC-H98
Input: AH = C2h
AL = Logical Slot Number (00-0Fh)
Output: DX = Function ID (1, 2): Board Manufacturer Code
AH = Function ID (3): Product Code
AL = Function ID (4) bits 7-4: Compatible Code
bits 3,2: Board Classification
bits 1,0: NESA-FO Type
<<Board Manufacturer Code>>
The board manufacturer code is a 2-byte value storing a 3-character alphabet string as follows:
bit 15: Always 0
bits 14-10: Code for the first character
bits 9-5: Code for the second character
bits 4-0: Code for the third character
The correspondence between the character codes and characters is as follows:
00000b = Not used
00001b = 'A'
00010b = 'B'
:
11010b = 'Z'
11011b = General customer use board manufacturer code
11100b = Not used
:
11111b = Not used
For "NEC", the value is 38A3h.
Description: Returns the function ID of the expansion board installed in the specified slot.
Related
INT 1Fh - Function C3h
Category: NESA-FO BIOS
Name: Get NESA-FO Register Settings
Target: PC-H98
Input: AH = C3h
AL = Slot logical number (00-0Fh)
DL = NESA-FO register number (00-0Fh)
Output: DL = NESA-FO register setting value
DH = Undefined
Description: Reads the setting value of the NESA-FO register of the expansion board installed in the specified slot. Related
INT 1Fh - Function C4h
Category: NESA-FO BIOS
Name: Get NESA-FO Allocation Setting Information
Target: PC-H98
Input: AH=C4h
AL=Logical Slot Number (00-0Fh)
DL bits 7-4 = Allocation Item (1-4)
DL bits 3-0 = Allocation Information #0-#3 (0-3)
Output: (1) When Allocation Item (input DL bits 7-4) = 1
DL = Interrupt Channel Information
bit 7: Flag
1 = Interrupt used
0 = Interrupt not used
bits 6,5: Mode
11b = Sharing possible/Level mode
10b = Unused
01b = Sharing not possible/Level mode
00b = Sharing not possible/Edge mode
bits 3-0: Interrupt Level (IR value)
1101b = INT6
1100b = INT5
1010b = INT4
1001b = INT3
0110b = INT2
0101b = INT1
0011b = INT0
(2) When Allocation Item (input DL bits 7-4) = 2
DL = DMA Channel Information
bit 7: DMA usage status
1 = DMA used
0 = DMA not used
bit 6: Mode
1 = Sharing possible
0 = Sharing not possible
bits 2-0: DMA Channel Number (0-6)
(3) When Allocation Item (input DL bits 7-4) = 3
AL = I/O Address Information
bits 7,6: Area Allocation
10b = Even allocation
01b = Odd allocation
00b = Continuous allocation
bits 5-0: Area Size (Number of I/O address ports)
DX = bits 15-0 = I/O Start Address
(4) When Allocation Item (input DL bits 7-4) = 4 When 7-4) = 4:
AL = Upper 8 bits of the memory area start address (in 256-byte units)
DX = Lower 16 bits of the memory area start address (in 256-byte units)
BX = Memory area size (in 4K-byte units)
Explanation: o Reads the NESA-FO allocation setting information of the expansion board installed in the specified slot.
o The allocation information set in the input DL bits 3-0 is used to distinguish resources when a single board has multiple resources.
o Hooked by EMM386.EXE
Related
INT 1Fh - Function C5h
Category: NESA-FO BIOS
Name: Get Mouse Interrupt Level
Target: PC-H98
Input: AH=C5h
Output: AL = Interrupt channel information
* Same format as the interrupt channel information of INT 1Fh - Function C4h
Explanation: o Reads the settings related to mouse interrupts.
Related
INT 1Fh - Function C6h
Category: NESA-FO BIOS
Name: No function
Undocumented
Target: PC-H98
Input: AH=C6h
Output: None
Description: o None
Related:
INT 1Fh - Function C7h
Category: NESA-FO BIOS
Name: Unknown
Undocumented
Target: PC-H98
Input: AH=C7h
AL = Subfunction number
DX = Unknown
Output:
Description: o NESA bus control related. Details unknown. Used by CHGEV.EXE.
Related:
INT 1Fh - Function C8~CFh
Category:
Name: No function
Undocumented
Target: PC-H98
Input: AH=C8~CFh
Output: None
Description: o None
Related:
■PCMCIA SSDRV.SYS
INT 1Fh - Function CFh Subfunction 00h
Category: PCMCIA Socket Service
Name: No function
Undocumented
Target: Machines with PC Card slots + SSDRV.SYS
Input: AH=CFh
AL=00h
Output: AH=15h (CF=1): Invalid function
Description: o This function is provided by the PCMCIA socket service (SSDRV.SYS).
u In NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00, executing this function destroys the ZR, PE, and OV flags.
Related:
INT 1Fh - Function CFh Subfunction 01h
Category: PCMCIA Socket Service
Name: Unknown
Undocumented
Target: Machines with PC Card slots + SSDRV.SYS
Input: AH=CFh
AL=01h
BH=Adapter number (usually 00h)
BL=Socket (usually 01h)
Output: AH=00h (CF=0): Successful completion
CH=?
CL=?
DX=?
AH=01h (CF=1): Invalid adapter specification
AH=0Bh (CF=1): Invalid socket specification
AH=14h (CF=1): No card inserted
Description: o Retrieves the values of CH, CL, and DX set by INT 1Fh - Function CFh Subfunction 02h.
o This function is provided by the PCMCIA socket service (SSDRV.SYS).
u In NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00, executing this function destroys the ZR, PE, and OV flags.
Related: INT 1Fh - Function CFh Subfunction 02h
INT 1Fh - Function CFh Subfunction 02h
Category: PCMCIA Socket Service
Name: Unknown
Undocumented
Target: Machines with PC Card slots + SSDRV.SYS
Input: AH=CFh
AL=02h
BH=Adapter number (usually 00h)
BL=Socket (usually 01h)
CH=Unknown (Range?)
■When CH bit 6=1
CL=?
DX=?
■When CH bits 6-4=0x1b
CL=00-1Fh
DX=0000-01FFh
■When CH bits 6-4=0x0b
CL=?
DX=0000-0FFFh
Output: AH=00h (CF=0): Successful completion
CH=?
CL=?
DX=?
AH=01h (CF=1): Invalid adapter specified
AH=0Bh (CF=1): Invalid socket specified
AH=14h (CF=1): No card inserted
AH=FEh (CF=1): Invalid value in DX register
AH=FFh (CF=1): Invalid value in CL register
Description: o This function is provided by the PCMCIA socket service (SSDRV.SYS).
u In NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00, executing this function destroys the ZR, PE, and OV flags.
Related: INT 1Fh - Function CFh Subfunction 01h
INT 1Fh - Function CFh Subfunction 03h
Category: PCMCIA Socket Service
Name: Unknown
Undocumented
Target: Machines with PC Card slots + SSDRV.SYS
Input: AH=CFh
AL=03h
BH=Adapter number (usually 00h)
CH=Function specification
■CH=00h
CL=Address number
* Unregisters the address registration for the specified number.
■CH=01h
ES:DI=Registration address
DX=?
* The address number to register is usually #7. However, it is #0 only when DX=4143h.
Output: AH=00h (CF=0): Successful completion
AH=01h (CF=1): Invalid adapter specification
AH=15h (CF=1): Invalid function
AH=16h (CF=1): Invalid mode
AH=FCh (CF=1): Invalid value in CL register
Explanation: o This function is provided by the PCMCIA socket service (SSDRV.SYS).
u In NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00, executing this function destroys the ZR, PE, and OV flags.
Related:
INT 1Fh - Function CFh Subfunction 04h
Category: PCMCIA Socket Service
Name: No function
Undocumented
Target: Machines with PC Card slots + SSDRV.SYS
Input: AH=CFh
AL=04h
Output: AH=15h (CF=1): Invalid function
Explanation: o This function is provided by the PCMCIA socket service (SSDRV.SYS).
u In NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00, executing this function destroys the ZR, PE, and OV flags. Related
INT 1Fh - Function CFh Subfunction 05h
Category: PCMCIA Socket Service
Name: Unknown
Undocumented
Target: Machines with PC Card slots + SSDRV.SYS
Input: AH=CFh
AL=05h
BH=Adapter number (usually 00h)
BL=Transfer content specification 1 (01-08h)
CL=Transfer content specification 2 (00-01h)
00h: Transfer 408 bytes
01h: Transfer 38 bytes
ES:DI=Transfer address
■Data format when CL=01h
------------+------------------------------------------------------------
Offset | Content
------------+------------------------------------------------------------
+00h (WORD) | Expansion slot usage flag
| 0001h: Use
| FFFFh: Do not use
+02h (BYTE) | Interrupt registration used by the expansion slot
| bits 6-0: INT6-INT0 usage flags
| 1 = Use
| 0 = Do not use
| * Set the bit corresponding to the interrupt to be used to 1. Up to two can be specified.
+03h (BYTE) | Always 00h (unused)
+04h (WORD) | Number of I/O space registrations used by the expansion slot (0000-0004h)
| 0000h if I/O space is not used
+06h (WORD) | Lower address limit of expansion slot area #0
+08h (WORD) | Upper address limit of expansion slot area #0
+0Ah (WORD) | Lower address limit of expansion slot area #1
+0Ch (WORD) | Upper address limit of expansion slot area #1
+0Eh (WORD) | Lower address limit of expansion slot area #2
+10h (WORD) | Upper address limit of expansion slot area #2
+12h (WORD) | Lower address limit of expansion slot area #3
+14h (WORD) | Upper address limit of expansion slot area #3
+16h | Unused
: |
+25h |
------------+------------------------------------------------------------
Output AH=00h (CF=0): Normal termination
AH=01h (CF=1): Invalid adapter specification
AH=FDh (CF=1): Invalid value in BL register
Explanation o This function is provided by the PCMCIA socket service (SSDRV.SYS).
u The data format when CL=01h is the same as CARDSET.DAT. CARDSET.DAT contains data for expansion slots #1 to #3 in this format.
u In NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00, executing this function destroys the ZR, PE, and OV flags.
Related INT 1Fh - Function CFh Subfunction 06h
INT 1Fh - Function CFh Subfunction 06h
Category: PCMCIA Socket Service
Name: Unknown
Undocumented
Target: Machines with PC Card slots + SSDRV.SYS
Input: AH=CFh
AL=06h
BH=Adapter number (usually 00h)
BL=Transfer content specification 1 (01-08h)
CL=Transfer content specification 2 (00-01h)
00h: 408 bytes transferred
01h: 38 bytes transferred
ES:DI=Transfer address
* For CL=01h, see INT 1Fh - Function CFh Subfunction 05h for data format.
Output: AH=00h (CF=0): Successful completion
AH=01h (CF=1): Invalid adapter specified
AH=FDh (CF=1): Invalid value in BL register
Description: o This function is provided by the PCMCIA Socket Service (SSDRV.SYS).
u The data format when CL=01h is the same as CARDSET.DAT. CARDSET.DAT stores data for expansion slots #1 to #3 in this format.
u In NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00, executing this function destroys the ZR, PE, and OV flags.
Related: INT 1Fh - Function CFh Subfunction 05h
■H98 DMA BIOS
INT 1Fh - Function D0h
Category: DMA BIOS
Name: DMAC Reset
Undocumented
Target: PC-H98
Input: AH=D0h
Output: AH=00h, CF=0: Successful completion
Description: Performs a master clear on the DMAC. The DMAC is reset.
Related: I/O 001Bh
INT 1Fh - Function D1h
Category: DMA BIOS
Name: No function
Undocumented
Target: PC-H98
Input: AH=D1h
Output: AH=00h, CF=0
Description: None
Related:
INT 1Fh - Function D2h
Category: DMA BIOS
Name: Channel Allocate
Target: PC-H98
Input: AH=D2h
AL=DMA channel number (0-6)
Output: AH=00h, CF=0: Successful completion
40h, CF=1: The specified DMA channel is in use
Description: Allocates the right to use a DMAC channel. Related: 0000:0591h
INT 1Fh - Function D3h
Category: DMA BIOS
Name: DMA Channel Initialization
Target: PC-H98
Input: AH=D3h
AL = DMA channel number (0-6)
BH = Settings to be configured in the BL register
00h: Bus size and transfer mode settings
01h: DMA boundary settings
02h: Unknown (Undocumented)
(1) When BH=00h:
BL bits 7-4: Bus size
1111b = 8-bit
1010b = 16-bit
0101b = 32-bit
* Other values are prohibited.
BL bits 3,2: Type
11b = Reserved
10b = Type B
01b = Type A
00b = Compatible cycle
bits 1,0: Set to 00b
(2) When BH=01h:
BL bits 7-4: Set to 0000b
BL bits 3,2: DMA boundary
11 = 16M bytes
10 = Reserved
01 = 1M byte
00 = 64K bytes
bits 1,0: Set to 00b
(2) When BH=02h (Undocumented):
bits 7-2: Unknown
bits 1,0: Set to 00b
Output: AH=00h, CF=0: Successful completion
20h, CF=1: Invalid parameter specified
40h, CF=1: The specified DMA channel is in use
Description: o Sets the DMA bus width and DMA address boundary for each DMA channel. Related
INT 1Fh - Function D4h
Category: DMA BIOS
Name: No function
Undocumented
Target: PC-H98
Input: AH=D4h
Output: AH=00h, CF=0
Description: o None
Related
INT 1Fh - Function D5h
Category: DMA BIOS
Name: DMA Parameter Set
Target: PC-H98
Input: AH=D5h
AL bit 7: TARGET ADDRESS UP/DOWN
1=TARGET DOWN
0=TARGET UP
bit 6: AUTO INITIALIZE MODE
1=AUTO INITIALIZE
0=NO OPERATION
bit 5,4: DMA MODE
11b=Setting prohibited
10b=Read (Memory to I/O)
01b=Write (I/O to Memory)
00b=Verify (I/O Read)
bit 3: Set to 0
bit 2-0: DMA channel number (0-6)
ES:BX = Start address of the parameter table
<Parameter Table Format>
----------------+-----------------------------------
Address | Content
----------------+-----------------------------------
ES:BX+00h(WORD) | DMA COUNT(L)
ES:BX+02h(WORD) | DMA COUNT(H) (Upper 1 byte is set to 00h)
ES:BX+04h(WORD) | DMA ADDRESS(L)
ES:BX+06h(WORD) | DMA ADDRESS(H)
----------------+-----------------------------------
Output: AH=00h, CF=0: Normal termination
20h, CF=1: Invalid parameter specified
Description: o Sets various parameters for the specified channel in the DMAC and unmasks the single mask register.
Related: 0000:0591h
INT 1Fh - Function D6h
Category: DMA BIOS
Name: DMA Parameter Readback
Target: PC-H98
Input: AH=D6h
AL=DMA channel number (0-6)
ES:BX=Start address of the parameter table
* See INT 1Fh - Function D5h for format
Output: AH=00h, CF=0: Successful completion
40h, CF=1: The specified DMA channel is not in use
Description: Retrieves the DMA address and transfer byte count for the specified channel.
Related: 0000:0591h
INT 1Fh - Function D7h
Category: DMA BIOS
Name: Channel Release
Target: PC-H98
Input: AH=D7h
AL=DMA channel number (0-6)
Output: AH=00h, CF=0: Successful completion
40h, CF=1: Channel check error
Description: Releases the usage rights of the DMA channel.
Related: 0000:0591h
■H98 Extended ROM BIOS
INT 1Fh - Function D8h
Category: Extended ROM BIOS
Name: Unknown
Undocumented
Target: PC-H98
Input: AH=D8h
CX=Interrupt number to use
ES:BX=Address of the interrupt control block
Output: CF=1: The specified interrupt control block is already in use
CF=0: Successful completion
Description: Details unknown
Related:
INT 1Fh - Function D9h
Category: Extended ROM BIOS
Name: Extended ROM Area Interrupt Control Block Update
(documented)
Target: PC-H98
Input: AH=D9h
AL=Upper 8 bits of the extended ROM segment address
CX=Interrupt number to use
ES:BX=Address of the interrupt control block to chain
Output: CF=1: The specified interrupt control block is already in use
CF=0: Successful completion
Description: Updates the offset +04-07h (interrupt routine chain) of the interrupt control block in the extended ROM. Related
INT 1Fh - Function DAh
Category: Extended ROM BIOS
Name: No function
Undocumented
Target: PC-H98
Input: AH=DAh
Output: CF=0
Description: None
Related
INT 1Fh - Function DBh
Category: Extended ROM BIOS
Name: Extended ROM Write Protection/Enable Setting
Undocumented
Target: PC-H98
Input: AH=DBh
AL = Upper 8 bits of the extended ROM segment address
CX = Number of bytes
DL = Setting value
00h: Write protection enabled
01h: Write protection disabled
Output: AH=00h, CF=0: Successful completion
AH=40h, CF=1: Invalid range for AL
Description: Sets the write protection/enable status of the extended ROM area.
Related
INT 1Fh - Functions DC-DEh
Category: Extended ROM BIOS
Name: No function
Undocumented
Target: PC-H98
Input: AH = DC-DEh
Output: CF = 0
Description: o None
Related:
■ H98 Power BIOS
INT 1Fh - Function DFh
Category: Power BIOS
Name: Power OFF Disable/Enable Setting
Undocumented
Target: PC-H98
Input: AH = DFh
BH = 00h: Power OFF disabled
Other than 00h: Power OFF enabled
Output: None
Description: o If power OFF is disabled using this function, the power will not turn off even if the power switch is pressed.
o Even in the power OFF disabled state, INT 1Fh - Function 98h will still turn off the power.
Related: INT 1Fh - Function 98h
0000:0596h bit 1
I/O 0431h